package object;

/**
 * Object        所有类的超类
 * public final native Class<?> getClass()    返回此对象的运行时类
 *
 * 静态方法
 * public static <T> T requireNonNull(T obj) {
 *      if (obj == null)
 *          throw new NullPointerException();
 *      return obj;
 * }        // 判断对象是否为空，若对象为空则抛出空指针异常（NullPointerException）
 *
 * Class<T>
 * public String getSimpleName()             返回源代码中给出的基础类的简单名称
 *
 *
 *
 * Object类的wait()、notify()、notifyAll()方法
 *      不是线程对象的方法，是java中任何一个java对象都有的方法，是Object类中自带的，不能通过线程对象调用
 * void wait()          让活动在当前对象的线程无限等待（释放之前占有的锁）
 * void wait(long timeout)
 * void notify()        唤醒在当前对象上等待的线程（只提示唤醒，不会释放锁）
 * void notifyAll()     唤醒在当前对象上等待的全部线程（只提示唤醒，不会释放锁）
 * */
public class ObjectDemo {
    public static void main(String[] args) {
        ObjectDemo obj = new ObjectDemo();
        Class<ObjectDemo> c = (Class<ObjectDemo>) obj.getClass();
        System.out.println("类全名：" + c);
        System.out.println("类简单名称：" + c.getSimpleName());
        new Object();
    }
}
